package com.powernode.settings.dao;

import com.powernode.settings.bean.Permission;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface PermissionMapper {
    int deleteByPrimaryKey(String id);

    int insert(Permission record);

    int insertSelective(Permission record);

    Permission selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(Permission record);

    int updateByPrimaryKey(Permission record);

    List<Permission> selectAll();

    /**
     * 查询角色之前的权限
     * @param roleId
     * @return
     */
    List<String> selectPermissionIdByRoleId(String roleId);

    /**
     * 先删除角色之前的权限
     * @param roleId
     * @return
     */
    int deleteRolePermission(String roleId);

    /**
     * 重新添加角色的权限
     * @param roleId
     * @param permissionIds
     * @return
     */
    int insertRolePermission(@Param("roleId") String roleId,
                             @Param("permissionIds") String [] permissionIds);

    /**
     * 查询权限是否正在被角色使用  查表role_permission
     * @param permissionIds
     * @return
     */
    List<String> selectRolePermissionByPermissionIds(String[] permissionIds);

    /**
     * 批量删除权限
     * @param permissionIds
     * @return
     */
    int deleteBatch(String[] permissionIds);

    /**
     * 根据用户的id查询权限
     * @param userid
     * @return
     */
    List<Permission> selectPermissionByUserId(String userid);

    /**
     * 查询所有权限,平级显示
     * @return
     */
    List<Permission> selectAllPermissions();
}